#ifndef __COMMANDPARSER_H_
#define __COMMANDPARSER_H_
#include "KLib.h"
#include "NonCopyable.h"

SK

/*
Action Type:        start, stop, restart, query
Action Command:     connect, gettime, setalarm, getalarms
Output Type:        Speech Reply, None, Web Server Reply


Whats the current time?
Action Type: query
Action Command:  CurrentTime
Output Type: Speech

List all active connections
Action Type: query
Action Command: Active Connections
Output Type: Speech

Close all connections
Action Type: start
Action Command: Close Active Connections
Output Type: None

Set an alarm for 7pm tomorrow
Action Type: start
Action Command: Set Alarm (7pm, curday + 1)
Output Type: Speech
*/
typedef enum CommandType
{
    COMMAND_UNKNOWN=0,
    COMMAND_SET,
    COMMAND_UNSET,
    COMMAND_START,
    COMMAND_STOP,
    COMMAND_RESTART,
};




typedef struct Command
{
    CommandType type;
    String subject;
    String variables;
};

class CommandParser
{
private:
    //typedef std::vector <SentenceToken>CommandStream;
    
public:
    CommandParser ();
    ~CommandParser ();

    bool parseCommand (const String& command);
};

EK
#endif